// TODO 25/6/08
// 可变参数
package main

import "fmt"

func main() {
	a, b := getSum("wby", 200, 100, 200, 300, 400)
	fmt.Println(a, b)
}

// 求和 , 参数是可变的，int
func getSum(name string, nums ...int) (string, int) {
	sum := 0
	fmt.Println("可变参数的长度为：", len(nums))
	for i := 0; i < len(nums); i++ {
		fmt.Println("可变参数", i, ":", nums[i])
		sum += nums[i]
	}
	//我们用类似于数组来接收可变参数。从而拿到可变参数的值
	return name, sum
}

// 可变参数： 一个函数的参数类型确定，参数的个数不确定，可以使用可变参数
// 就是参数类型确定，但是参数的数量不确定，就是随意往上增加
// 可变参数如果有多个参数,所以必须要放在最后一个参数的位置，因为它本身是无穷的

// 求和 , 参数是可变的，int

// 接收多个参数 nums 可变参数
// 使用下标来接收，下标是从0开始的(用于数组的模式）来接收
// nums : 100,200,300,400,500
// nums[0] = 100
// nums[1] = 200
// nums[2] = 300

// 了解传递了多少个数字  len()函数，获取可变参数的长度

/*
func main()  {
	fmt.Println()
}

//源码：
func Println(a ...any) (n int, err error) {
	return Fprintln(os.Stdout, a...)
}
这个是可以传递的数据的类型是any类型，表示空接口，我们能去传递任何的参数（在go新版本被命名为any类型）
*/
